#include "Tree.cpp"

//给你一棵 完全二叉树 的根节点 root ，求出该树的节点个数。
//
//完全二叉树 的定义如下：在完全二叉树中，除了最底层节点可能没填满外，其余每层节点数都达到最大值，并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层，则该层包含 1~2^h个节点。
queue<TreeNode*> q;

int countNodes(TreeNode* root){
    int count = 0;
    q.push(root);
    while (!q.empty()) {
        TreeNode* p = q.front();
        q.pop();
        if (p == NULL) {
            break;
        }
        q.push(p->leftChild);
        q.push(p->rightChild);
        count++;
    }
    return count;
}

int main() {

    Tree tree = CreateTreeByFile("Day-3-1.txt");
    int result = countNodes(tree);
}